package com.ruoyi.print.service;

import java.util.List;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.print.domain.PrintFileUpload;

/**
 * 打印文件上传Service接口
 * 
 * @author ruoyi
 * @date 2025-01-20
 */
public interface IPrintFileUploadService 
{
    /**
     * 查询打印文件上传
     * 
     * @param id 打印文件上传主键
     * @return 打印文件上传
     */
    public PrintFileUpload selectPrintFileUploadById(Long id);

    /**
     * 查询打印文件上传列表
     * 
     * @param printFileUpload 打印文件上传
     * @return 打印文件上传集合
     */
    public List<PrintFileUpload> selectPrintFileUploadList(PrintFileUpload printFileUpload);

    /**
     * 新增打印文件上传
     * 
     * @param printFileUpload 打印文件上传
     * @return 结果
     */
    public int insertPrintFileUpload(PrintFileUpload printFileUpload);

    /**
     * 修改打印文件上传
     * 
     * @param printFileUpload 打印文件上传
     * @return 结果
     */
    public int updatePrintFileUpload(PrintFileUpload printFileUpload);

    /**
     * 批量删除打印文件上传
     * 
     * @param ids 需要删除的打印文件上传主键集合
     * @return 结果
     */
    public int deletePrintFileUploadByIds(Long[] ids);

    /**
     * 删除打印文件上传信息
     * 
     * @param id 打印文件上传主键
     * @return 结果
     */
    public int deletePrintFileUploadById(Long id);

    /**
     * 上传打印文件
     * 
     * @param file 文件
     * @return 上传结果
     */
    public PrintFileUpload uploadPrintFile(MultipartFile file);

    /**
     * 批量上传打印文件
     * 
     * @param files 文件列表
     * @return 上传结果列表
     */
    public List<PrintFileUpload> batchUploadPrintFiles(List<MultipartFile> files);

    /**
     * 验证文件类型
     * 
     * @param file 文件
     * @return 是否有效
     */
    public boolean validateFileType(MultipartFile file);

    /**
     * 验证文件大小
     * 
     * @param file 文件
     * @return 是否有效
     */
    public boolean validateFileSize(MultipartFile file);
} 